class Solution {
public:

    //给的string已经具备了所需空间
    string replaceSpaces(string S, int length)
    {
        //1.计算空格
        //2.从后往前吧字符进行移动，碰到空格插入 "%20"

        if(length==0)//特殊情况
            return S;

        int count=0;
        for(int i =0;i<length;i++)
        {
            if(S[i]==' ')
            {
                count++;
            }
        }
        //正常情况
        int  index=length+count*2-1;
        length--;
        while(index>=0)//题目给的空间并不是刚刚好的（没考虑到）
        {
            if(S[length]==' ')
            {
                //插入空格
                S[index--]='0';
                S[index--]='2';
                S[index--]='%';
                length--;
            }
            else
                S[index--]=S[length--];//挪数据
        }

        //处理题目给的“垃圾”，多余的空间（这个还真没考虑到）
        index=S.size()-1;
        while(1)
        {
            
            if(S[index]==' ')
            {
                S.pop_back();
                index--;
            }
            else
            break;
        }
        return S;
    }
};
